import java.io.IOException;
import java.io.InputStream;
import java.lang.reflect.Method;
import java.util.Properties;


public class demo {
    public static void main(String[] args) throws Exception {
        //1.加载配置文件
        //1.1创建properties对象
        Properties myapp=new Properties();
        //1.2加载配置文件转换为一个集合
        //1.2.1获取class目录下的配置文件
        ClassLoader cl=demo.class.getClassLoader();//类加载器
        InputStream is= cl.getResourceAsStream("myapp.properties");
        myapp.load(is);

        //2.获取配置文件中定义的数据
        String className=myapp.getProperty("bootstrapClass");
        //System.out.println(className);

        //3.加载该类进内存
        Class cls = Class.forName(className);
        //4.创建对象
        Object obj=cls.newInstance();
        //5.获取有注解方法对象
        Method[] methods = cls.getMethods();
        for(Method m:methods){
            if(m.isAnnotationPresent(InitMethod.class)){
                m.invoke(obj,2,3);
                InitMethod initMethod=m.getAnnotation(InitMethod.class);
            }
        }
    }
}
